package com.zishi.venuesbooking.adapter;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.zishi.venuesbooking.R;

import java.util.ArrayList;

public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoViewHolder> {

    private ArrayList<String> videoUrls; // 视频文件的URL
    private OnVideoClickListener listener; // 用于处理点击事件

    public interface OnVideoClickListener {
        void onClick(String videoUrl); // 当视频项被点击时调用
    }

    public VideoAdapter(ArrayList<String> videoUrls, OnVideoClickListener listener) {
        this.videoUrls = videoUrls;
        this.listener = listener;
    }

    @NonNull
    @Override
    public VideoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        // 初始化每个视频项的布局
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_video, parent, false);
        return new VideoViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull VideoViewHolder holder, int position) {
        String videoUrl = videoUrls.get(position);

        // 加载视频封面（例如：第一帧截图或静态封面）
        // 这里通过 Glide 加载封面图，你可以根据需要选择不同的封面策略
        Bitmap bitmap = getVideoThumbnail(holder.itemView.getContext(), videoUrl);
        holder.videoCover.setImageBitmap(bitmap);

        // 设置点击事件
        holder.itemView.setOnClickListener(v -> listener.onClick(videoUrl));
    }

    @Override
    public int getItemCount() {
        return videoUrls.size();
    }

    // 用于获取视频的封面缩略图
    private Bitmap getVideoThumbnail(Context context, String videoUrl) {
        // 使用 Glide 或其他方法获取视频的缩略图，这里是简单示例
        Bitmap thumbnail = null;

        try {
            // 你可以使用 ExoPlayer 或其他方式从视频中获取封面
            // 这里假设每个视频有对应的封面图片，存放在 assets 目录下
            String coverPath = "assets:/videos/" + videoUrl + "_cover.jpg"; // 假设封面命名为 `videoUrl_cover.jpg`
            thumbnail = BitmapFactory.decodeStream(context.getAssets().open(coverPath));
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 如果没有封面，则返回默认图
        if (thumbnail == null) {
            thumbnail = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher);
        }
        return thumbnail;
    }

    public static class VideoViewHolder extends RecyclerView.ViewHolder {

        ImageView videoCover;

        public VideoViewHolder(View itemView) {
            super(itemView);
            videoCover = itemView.findViewById(R.id.videoCover); // 获取视频封面 ImageView
        }
    }
}
